package com.example.exercise.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;

import com.example.exercise.sys.vo.SysDictVO;
import com.example.exercise.sys.dao.entity.SysDictEntity;
import com.example.exercise.sys.dao.SysDictDAO;

/**
* 系统字典表
*/
@Service
public class SysDictService {

    @Autowired
    private SysDictDAO sysDictDAO;

    public List<SysDictVO> findByWhere(Page<?> page, SysDictVO sysDictVO){
        List<SysDictVO> list = new ArrayList<>();
        List<SysDictEntity> list0 = sysDictDAO.findByWhere(page, sysDictVO);
        for (SysDictEntity sysDictEntity : list0) {
            list.add(toSysDictVO(sysDictEntity));
        }
        return list;
    }

    public SysDictVO findByKey(SysDictVO sysDictVO){
        SysDictEntity sysDictEntity = sysDictDAO.findByKey(sysDictVO);
        return toSysDictVO(sysDictEntity);
    }

    public int insert(SysDictVO sysDictVO){
        return sysDictDAO.insert(toSysDictEntity(sysDictVO));
    }

    public int updateByKey(SysDictVO sysDictVO){
        return sysDictDAO.updateByKey(toSysDictEntity(sysDictVO));
    }

    public int deleteByKey(SysDictVO sysDictVO){
        return sysDictDAO.deleteByKey(sysDictVO);
    }

    private SysDictVO toSysDictVO(SysDictEntity sysDictEntity) {
        SysDictVO sysDictVO = new SysDictVO();
                sysDictVO.setId(String.valueOf(sysDictEntity.getId()));
        sysDictVO.setDicKey(sysDictEntity.getDicKey());
        sysDictVO.setDicName(sysDictEntity.getDicName());
        sysDictVO.setDicCode(sysDictEntity.getDicCode());
        sysDictVO.setDicValue(sysDictEntity.getDicValue());
        sysDictVO.setSortNo(String.valueOf(sysDictEntity.getSortNo()));
        sysDictVO.setDataDesc(sysDictEntity.getDataDesc());

        return sysDictVO;
    }

    private SysDictEntity toSysDictEntity(SysDictVO sysDictVO) {
        SysDictEntity sysDictEntity = new SysDictEntity();
                String id = sysDictVO.getId();
        if(id != null) {
            sysDictEntity.setId(Integer.parseInt(sysDictVO.getId()));
        }
        sysDictEntity.setDicKey(sysDictVO.getDicKey());
        sysDictEntity.setDicName(sysDictVO.getDicName());
        sysDictEntity.setDicCode(sysDictVO.getDicCode());
        sysDictEntity.setDicValue(sysDictVO.getDicValue());
        sysDictEntity.setDataDesc(sysDictVO.getDataDesc());

        return sysDictEntity;
    }

}